#include "stm32f10x.h"

/************************
* 微秒级延时
* @param us 延时时长，范围：0~233015
* @return 无
**************************/
void delay_us(uint32_t us)
{
	SysTick->LOAD =72 * us;					// 设置定时器重装载值
	SysTick->VAL = 0x00;					// 清空当前计数值
	SysTick->CTRL  =  0x00000005;			// 设置时钟源为HCLK，启动定时器
	while(!(SysTick->CTRL & 0x00010000));	// 等待计数到0
	SysTick->CTRL = 0x00000004;				// 关闭定时器
}

/************************
* 毫秒级延时
* @param ms 延时时长，范围：0~4294967295
* @return 无
**************************/
void delay_ms(uint32_t ms)
{
	while(ms--)
	{
		delay_us(1000);
	}
}

/************************
* 秒级延时
* @param us 延时时长，范围：0~4294967295
* @return 无
**************************/
void delay_s(uint32_t s)
{
	while(s--)
	{
		delay_ms(1000);
	}
}
